# 自动取款机存取款

# 定义一个用于存放账户信息的列表
ATMlist = [
    {'account': 'zhangsan', 'password': 'zhangsan123', 'deposit': 10000},
    {'account': 'lisi', 'password': 'lisi123', 'deposit': 8000},
    {'account': 'wangwu', 'password': 'wangwu123', 'deposit': 11000},
    {'account': 'Amy', 'password': 'Amy123', 'deposit': 12000}]


# 定义一个输出账户信息的模块
def account_info(ATMlist):
    print('{0:<18} {1:12} {2:20}'.format(' ', '账户名称：', number['account']))
    print('{0:<18} {1:12} {2:4}'.format(' ', '账户余额(RMB)：', number['deposit']))


# 登陆模块
print('欢迎您使用ATM机'.center(60, '='))
your_account = input('请输入您的账号：')
your_password = input('请输入您的密码：')
flag = 'off'        # 用flag来控制是否进入while循环
for i in ATMlist:   # 将列表中的信息遍历一遍，若输入的账号和密码同时与列表内的信息符合，进入while循环（存取款模块）
    if your_account == i['account'] and your_password == i['password']:
        print('登陆成功'.center(62, '='))
        print()
        global number
        number = i      # 这里number的属性为字典
        flag = 'on'


if flag == 'off':   # 若输入的账户或密码有误，则程序到此结束
    print('您输入的账号或密码有误，请重新输入'.center(51, '='))



# 登陆成功后输出初始界面
while flag == 'on':
    print('请选择您要进行的操作'.center(57, '='))
    print('{0:<16} {1:<21} {2:<21}'.format(' ', '1. 查询余额', '2. 存款'))
    print('{0:<16} {1:<21} {2:<21}'.format(' ', '3. 退出系统', '4. 取款'))
    key = input('请输入对应的值：')
    if key == '1':
        print('账户信息浏览'.center(60, '='))
        account_info(ATMlist)
        input('按回车键继续：')
    elif key == '2':
        # 存款模块
        print('请将钞票叠整齐后放入存钞口'.center(55, '='))
        IN = input('请输入您存入的金额：')
        sum = int(IN) + number['deposit']
        number['deposit'] = sum
        input('按回车键继续：')
    elif key == '3':
        print('再见'.center(64, '='))
        break
    elif key == '4':
        # 取款模块
        print('正在取款'.center(62, '='))
        IN = input('请输要取出的金额：')
        sum = number['deposit'] - int(IN)
        number['deposit'] = sum
        input('按回车键继续：')
    else:
        print('输入无效，请重新输入')
        print('')
